import { dataType } from "element-plus/es/components/table-v2/src/common.mjs";

export class PersonInfo {
  ename: string;
  email: string;
  dname: string;
  job_name: string;
  gender: number;
  start_date: string;
  birthday: string;
  marriage: number;
  work_date: string;
  deptHistory: Array<DeptInfo>;
  jobHistory: Array<JobInfo>;

  constructor(
    ename: string,
    email: string,
    dname: string,
    job_name: string,
    gender: number,
    start_date: string,
    birthday: string,
    marriage: number,
    work_date: string,
    deptHistory: Array<DeptInfo>,
    jobHistory: Array<JobInfo>
  ) {
    (this.ename = ename),
      (this.email = email),
      (this.dname = dname),
      (this.job_name = job_name),
      (this.gender = gender),
      (this.start_date = start_date),
      (this.birthday = birthday),
      (this.marriage = marriage),
      (this.work_date = work_date),
      (this.deptHistory = deptHistory);
    this.jobHistory = jobHistory;
  }
}

export class DeptInfo {
  empno: number;
  deptno: number;
  start_date: string;
  end_date: string;
  dname: string;

  constructor(
    empno: number,
    deptno: number,
    start_date: string,
    end_date: string,
    dname: string
  ) {
    this.empno = empno;
    this.deptno = deptno;
    this.start_date = start_date;
    this.end_date = end_date;
    this.dname = dname;
  }
}

export class JobInfo {
  empno: number;
  jobno: number;
  start_date: string;
  end_date: string;
  job_name: string;

  constructor(
    empno: number,
    jobno: number,
    start_date: string,
    end_date: string,
    job_name: string
  ) {
    this.empno = empno;
    this.jobno = jobno;
    this.start_date = start_date;
    this.end_date = end_date;
    this.job_name = job_name;
  }
}

export class Dept {
  deptno: number;
  dname: string;
  locid: number;

  constructor(deptno: number, dname: string, locid: number) {
    this.deptno = deptno;
    this.dname = dname;
    this.locid = locid;
  }
}

export class ComDate {
  date: Date;
  date_type: number;

  constructor(date: Date, date_type: number) {
    this.date = date;
    this.date_type = date_type;
  }
}
export class Vacation_Type {
  vacation_id: number;
  vacation_name: string;
  limitt: number;

  constructor(vacation_id: number, vacation_name: string, limitt: number) {
    this.vacation_id = vacation_id;
    this.vacation_name = vacation_name;
    this.limitt = limitt;
  }
}
export class Vacation {
  ename: string;
  vacation_name: string;
  start_date: Date;
  end_date: Date;
  duration: number;
  state: number;

  constructor(
    ename: string,
    vacation_name: string,
    start_date: Date,
    end_date: Date,
    duration: number,
    state: number
  ) {
    this.ename = ename;
    this.vacation_name = vacation_name;
    this.start_date = start_date;
    this.end_date = end_date;
    this.duration = duration;
    this.state = state;
  }
}
export class Vacationck {
  empno: number;
  ename: string;
  record_id:number;
  vacation_id:number;
  vacation_name: string;
  start_date: Date;
  end_date: Date;
  duration: number;
  state: number;
  vacation_reason:string;
  constructor(
    empno: number,
    ename: string,
    record_id:number,
    vacation_id:number,
    vacation_name: string,
    start_date: Date,
    end_date: Date,
    duration: number,
    state: number,
    vacation_reason:string
  ) {
    this.empno = empno;
    this.ename = ename;
    this.record_id = record_id;
    this.vacation_id = vacation_id
    this.vacation_name = vacation_name;
    this.start_date = start_date;
    this.end_date = end_date;
    this.duration = duration;
    this.state = state;
    this.vacation_reason=vacation_reason
  }
}
export class clock {
  empno: string;
  ename: string;
  date: string;
  clockIn_time: string;
  attend_id: number;
  clockOut_time: string;
  reattend_reason: string;
  restate: string;
  state: string;

  constructor(
    empno: string,
    ename: string,
    date: string,
    clockIn_time: string,
    attend_id: number,
    clockOut_time: string,
    reattend_reason: string,
    restate: string,
    state: string
  ) {
    this.empno = empno;
    this.ename = ename;
    this.date = date;
    this.clockIn_time = clockIn_time;
    this.attend_id = attend_id;
    this.clockOut_time = clockOut_time;
    this.reattend_reason = reattend_reason;
    this.restate = restate;
    this.state = state;
  }
}

export class attendList {
  date: string;
  date_type: number;
  state: string;
  t1: string;
  t2: string;
  t3: string;
  t4: string;
  restate: string;

  constructor(
    date: string,
    date_type: number,
    state: string,
    t1: string,
    t2: string,
    t3: string,
    t4: string,
    restate: string
  ) {
    this.date = date;
    this.date_type = date_type;
    this.state = state;
    this.t1 = t1;
    this.t2 = t2;
    this.t3 = t3;
    this.t4 = t4;
    this.restate = restate;
  }
}
